home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / BlockBuster / BlockBuster.jar / Ball.class (.txt) next >
Encoding:
Java Class File  |  2000-11-14  |  2.3 KB  |  168 lines

  1. import java.util.Random;
  2. import javax.microedition.lcdui.Graphics;
  3.  
  4. class Ball {
  5.    static Random random = new Random();
  6.    boolean dgreeChk = false;
  7.    private static int cnt = 0;
  8.    private int minX;
  9.    private int minY;
  10.    private int maxX;
  11.    private int maxY;
  12.    private int posX;
  13.    private int posY;
  14.    private int deltaX;
  15.    private int deltaY;
  16.    private Court court;
  17.    private boolean outOfPlay = true;
  18.    private boolean ballmove = false;
  19.  
  20.    Ball(Court var1) {
  21.       this.court = var1;
  22.       this.minX = 3;
  23.       this.minY = 3;
  24.       this.maxX = 88;
  25.       this.maxY = 76;
  26.    }
  27.  
  28.    public boolean RBallMove() {
  29.       return this.ballmove;
  30.    }
  31.  
  32.    public void SetPos(int var1) {
  33.       this.posX = var1 + 5;
  34.    }
  35.  
  36.    public boolean inPlay() {
  37.       return this.outOfPlay ^ true;
  38.    }
  39.  
  40.    public void inPlayChange() {
  41.       this.outOfPlay = false;
  42.    }
  43.  
  44.    public synchronized void move() {
  45.       if (!this.outOfPlay && this.ballmove) {
  46.          if (this.deltaY > 0) {
  47.             if (this.posY >= this.maxY && this.posY <= 78 && this.court.isPaddleHit(this.posX)) {
  48.                if (this.court.isPaddleHitEdgeR(this.posX)) {
  49.                   this.dgreeChk = true;
  50.                   if (this.deltaX < 0) {
  51.                      this.deltaX = -this.deltaX;
  52.                   }
  53.                } else if (this.court.isPaddleHitEdgeL(this.posX)) {
  54.                   this.dgreeChk = true;
  55.                   if (this.deltaX > 0) {
  56.                      this.deltaX = -this.deltaX;
  57.                   }
  58.                } else {
  59.                   cnt = 0;
  60.                   this.dgreeChk = false;
  61.                }
  62.  
  63.                this.deltaY = -this.deltaY;
  64.             } else if (this.posY >= 79) {
  65.                this.outOfPlay = true;
  66.                this.setBallMoveOff();
  67.                boolean var1 = this.court.didntHit();
  68.                if (var1) {
  69.                   Court.Msging = true;
  70.                   this.court.ChgMsgStatus(4);
  71.                   this.court.reStart();
  72.                }
  73.  
  74.                return;
  75.             }
  76.          }
  77.  
  78.          if (this.posY >= 10 && this.posY <= 35) {
  79.             int var3;
  80.             if (this.deltaY > 0) {
  81.                var3 = this.posY + 4;
  82.             } else {
  83.                var3 = this.posY;
  84.             }
  85.  
  86.             int var2;
  87.             if (this.deltaX > 0) {
  88.                var2 = this.posX + 4;
  89.             } else {
  90.                var2 = this.posX + 1;
  91.             }
  92.  
  93.             if (this.court.isBlockHit(var2, var3)) {
  94.                if (this.court.isBlockHitEdge(this.posX)) {
  95.                   this.deltaX = -this.deltaX;
  96.                } else {
  97.                   this.deltaY = -this.deltaY;
  98.                }
  99.             }
  100.          }
  101.  
  102.          if (this.posY <= this.minY) {
  103.             this.deltaY = 1;
  104.             this.posY = this.minY;
  105.          }
  106.  
  107.          if (this.posX <= this.minX || this.posX >= this.maxX) {
  108.             this.deltaX = -this.deltaX;
  109.          }
  110.  
  111.          if (this.dgreeChk) {
  112.             ++cnt;
  113.             if (cnt % 3 != 0) {
  114.                this.posY += this.deltaY;
  115.             }
  116.          } else {
  117.             this.posY += this.deltaY;
  118.          }
  119.  
  120.          this.posX += this.deltaX;
  121.       }
  122.    }
  123.  
  124.    void paint(Graphics var1) {
  125.       if (!this.outOfPlay) {
  126.          var1.setColor(13311);
  127.          var1.fillArc(this.posX, this.posY, 5, 5, 0, 360);
  128.       }
  129.    }
  130.  
  131.    void putInPlay() {
  132.       this.outOfPlay = false;
  133.       this.posX = 46;
  134.       this.posY = this.maxY;
  135.       this.deltaY = 1;
  136.       this.deltaX = random.nextInt() & 1;
  137.       if (this.deltaX == 0) {
  138.          this.deltaX = -1;
  139.       }
  140.  
  141.    }
  142.  
  143.    void putInPlayAdd(int var1) {
  144.       this.setBallMoveOn();
  145.       this.outOfPlay = false;
  146.       this.posX = var1 + 2;
  147.       this.posY = this.maxY;
  148.       this.deltaY = -1;
  149.       this.deltaX = random.nextInt() & 1;
  150.       if (this.deltaX == 0) {
  151.          this.deltaX = -1;
  152.       }
  153.  
  154.    }
  155.  
  156.    void setBallMoveOff() {
  157.       this.ballmove = false;
  158.    }
  159.  
  160.    void setBallMoveOn() {
  161.       this.ballmove = true;
  162.    }
  163.  
  164.    void takeOutOfPlay() {
  165.       this.outOfPlay = true;
  166.    }
  167. }
  168.